Scene
  Camera(type="arcRotate")

  // Standard Mesh component props
  Box(:scaling="[0.5, 1, 1]" :position="[2, 0, 0]")

  // Properties prop object on Entity component
  // $vector() helper function
  Sphere(:properties="{ position: $vector([-2, 0, 0]) }")

  // Property component
  Cylinder
    property(name="scaling" :vector="{ x: 2, y: 0.5, z: 1 }")

  Entity
    Animation(property="rotation.x" :duration="5" :end="Math.PI * 2")

    // Standard Light component props
    PointLight(diffuse="#F0F" :position="[0, 0, 4]")

  Entity
    Animation(property="rotation.y" :duration="5" :end="Math.PI * 2")

    // Property components
    PointLight
      property(name="diffuse" color="#0FF")
      property(name="position" :vector="[0, 0, 4]")

  Entity
    Animation(property="rotation.z" :duration="5" :end="Math.PI * 2")

    // Properties prop object on Entity component (set multiple values!)
    // $color() helper function
    PointLight(:properties="{ diffuse: $color('#FF0'), specular: $color({ r: 1, g: 0, b: 0 }) }")
      // Mix-and-match!
      property(name="position" :vector="[0, 4, 0]")

// Also available:
// float="..." Property component prop
// matrix="..." Property component prop
// any="..." Property component prop
// $matrix() helper function
